<?php

require_once(FWK_MODEL."Upload.class.php");

class ControlSite {

	private $objUpload;
	
	/**
	 * Método responsável pelo tratamento do upload do arquivo
	 *
	 * @param String $strNomeFoto: Novo nome do campo da foto
	 * @param String $strField: campo no formulário contando o campo file
	 * @param String $strCaminho: caminho fisico da pasta de destino da imagem
	 *
	 */
	protected function uploadFile($strNomeFoto,$strField,$strCaminho){
		try{
			self::getObjUploadFile()->uploadFile($strField, $strCaminho, $strNomeFoto);
		}catch(UploadException $e){
			throw new UploadException($e);
		}
	}

	/**
	 * Método responsável pela copia do arquivo - zip -> pasta
	 *
	 * @param String $nomeArquivo: nome do arquivo da foto
	 * @param String $pastaOrigem: caminho fisico da pasta de origem da imagem
	 * @param String $pastaDestino: caminho fisico da pasta de destino da imagem
	 *
	 */
	protected function copyFile($pastaOrigem, $pastaDestino, $nomeArquivo){
		try{
			self::getObjUploadFile()->copyFile($pastaOrigem, $pastaDestino, $nomeArquivo);
		}catch(UploadException $e){
			throw new UploadException($e);
		}
	}


	protected function getObjUploadFile(){
		if($this->objUpload == null)
		$this->objUpload = new Upload();
		return $this->objUpload;
	}

	public function apagaArquivoFisico($id,$campo,$pastaImg){
		$result = self::buscaCampos($id,0);
		if(isset($result[$campo]) && $result[$campo] != "" && $result[$campo] != null){
			if(is_file($pastaImg.$result[$campo])){
				unlink($pastaImg.$result[$campo]);
			}else{
				throw new CustonException("Não foi possível deletar o arquivo.");
				return;
			}
		}
	}


	/**
	 * Método para verificar a extensão do arquivo
	 *
	 * deve-se passar o typo do arquivo.
	 */
	protected function getExtFiles($file){
		switch($file){
			case "":
				return "";
				break;
			case "image/jpeg":
			case "image/jpg":
				return ".jpg";
				break;
			case "image/bmp":
				return ".bmp";
				break;
			case "image/png":
			case "image/x-png":
				return ".png";
				break;
			case "image/gif":
				return ".gif";
				break;
			case "application/zip":
				return ".zip";
				break;
			case "text/css":
				return ".css";
				break;
			case "text/x-c":
				return ".js";
				break;
			case "application/x-javascript":
				return ".js";
				break;
			case "application/pdf":
				return ".pdf";
				break;
			default:
				throw new CustonException("Formato de arquivo não aceito pelo sistema: ".$file);
		}
	}
	
}
?>